﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DONGACS.Common
{
    public class CheckPermission
    {
        #region Hàm Check Quyền chung trong Hệ thống

        /// <summary>
        /// Hàm kiểm tra user đăng nhập có quyền xác định nào đó không
        /// </summary>
        /// <param name="permission">permission có dạng : "Controller_Action"</param>
        /// <returns>bool</returns>
        public bool IsExistPermission(string permission)
        {
            if (Convert.ToBoolean(HttpContext.Current.Session["ISADMIN"]))
                return true;
            IList<string> permissionList = (List<string>)HttpContext.Current.Session["PermissionList"] ?? new List<string>();
            return permissionList.Any(permission.Equals);
        }

        /// <summary>
        /// Hàm kiểm tra user đăng nhập có ít nhất một trong số tập hợp quyền xác định không
        /// </summary>
        /// <param name="permisstionCollection">Tập hợp quyền: Mỗi quyền có dạng - Controller_Action</param>
        /// <returns>bool</returns>
        public bool IsContainOneInPermissionCollection(IEnumerable<string> permisstionCollection)
        {
            if (Convert.ToBoolean(HttpContext.Current.Session["ISADMIN"]))
                return true;
            IList<string> permissionList = (List<string>)HttpContext.Current.Session["PermissionList"] ?? new List<string>();
            return permissionList.Any(permisstionCollection.Contains);
        }

        #endregion
    }
}
